package net.dodoman.test;

import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;

public class PinYin {
	public static String getPingYin(String src) {

		char[] t1 = null;
		t1 = src.toCharArray();
		String[] t2 = new String[t1.length];
		HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat();
		t3.setCaseType(HanyuPinyinCaseType.LOWERCASE);
		t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
		t3.setVCharType(HanyuPinyinVCharType.WITH_V);
		String t4 = "";
		int t0 = t1.length;
		try {
			for (int i = 0; i < t0; i++) {
				// 判断是否为汉字字符
				if (java.lang.Character.toString(t1[i]).matches(
						"[\\u4E00-\\u9FA5]+")) {
					t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);
					t4 += t2[0];
				} else
					t4 += java.lang.Character.toString(t1[i]);
			}
			// System.out.println(t4);
			return t4;
		} catch (BadHanyuPinyinOutputFormatCombination e1) {
			e1.printStackTrace();
		}
		return t4;
	}

	// 返回中文的首字母
	public static String getPinYinHeadChar(String str) {

		String convert = "";
		for (int j = 0; j < str.length(); j++) {
			char word = str.charAt(j);
			String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word);
			if (pinyinArray != null) {
				convert += pinyinArray[0].charAt(0);
			} else {
				convert += word;
			}
		}
		return convert;
	}

	// 将字符串转移为ASCII码
	public static String getCnASCII(String cnStr) {
		StringBuffer strBuf = new StringBuffer();
		byte[] bGBK = cnStr.getBytes();
		for (int i = 0; i < bGBK.length; i++) {
			// System.out.println(Integer.toHexString(bGBK[i]&0xff));
			strBuf.append(Integer.toHexString(bGBK[i] & 0xff));
		}
		return strBuf.toString();
	}

	public static void main(String[] args) {

		String cnStr = "中华人民共和国";
		System.out.println(getPingYin(cnStr));
		System.out.println(getPinYinHeadChar(cnStr));
	}

	// public ActionForward initjgyhs(ActionMapping mapping, ActionForm form,
	// HttpServletRequest request, HttpServletResponse response)
	// throws Exception {
	// File file = new File("E:/mzt.xls"), file1 = new File("E:/mzt1.xls");
	// // 插入机构
	// // List<String> jgs = ExcelOperator.getValuesByColumn(file, 0, 0,
	// // (short) 0);
	// // double i = 120;
	// // List<Jigouzuzhi> jgzzs = new ArrayList<Jigouzuzhi>();
	// // for (String jg : jgs) {
	// // // System.out.println(jg);
	// // Jigouzuzhi jgzz = new Jigouzuzhi();
	// // jgzz.setJgmc(jg);
	// // jgzz.setParentid("500063");
	// // jgzz.setJgpx(i);
	// // jgzz.setBz("bz");
	// // jgzzs.add(jgzz);
	// // i++;
	// // }
	// // System.out.println(jigouzuzhiManager);
	// // jigouzuzhiManager.batchInsert(jgzzs);
	//
	// // 插入用户
	// List<Jigouzuzhi> jgList = jigouzuzhiManager
	// .find("select  * from t_jigou where jgpx>120");
	// Map<String, String> map = new HashMap<String, String>();
	// for (Jigouzuzhi jz : jgList) {
	// map.put(jz.getJgmc(), jz.getId());
	// }
	// String[][] users = ExcelOperator.getData(file1, 0);
	// List<JigouYongHu> jgyhlist = new ArrayList<JigouYongHu>();
	// for (String[] s1 : users) {
	// JigouYongHu user = new JigouYongHu();
	// for (String s2 : s1) {
	// user.setUsername((s1[0].replace(" ", "")).trim());
	// user.setLoginid(PinYin.getPingYin((s1[0].replace(" ", ""))
	// .trim()));
	// if (s1[1].indexOf(",") > 0) {
	// user.setBgsdh((s1[1].split(",")[0]).trim());
	// user.setFzhm((s1[1].split(",")[1]).trim());
	// } else {
	// user.setBgsdh(s1[1].trim());
	// }
	// if (s1[2].indexOf(",") > 0) {
	// user.setJtdh((s1[2].split(",")[0]).trim());
	// } else {
	// user.setJtdh(s1[2].trim());
	// }
	// // user.setJtdh(s1[2]);
	// user.setMobile(s1[3].trim());
	// user.setOrgcode("500063");
	// System.out.println(s1[4]);
	// user.setOwner((map.get(s1[4])).trim());
	// user.setJgid((map.get(s1[4])).trim());
	// }
	// jgyhlist.add(user);
	// }
	// jigouManager.batchInsert(jgyhlist);
	// return null;
	// }

}
